<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta charset="utf-8" />
    <title>TKEStack</title>
    <link href="/static/css/mc_2014/global/css/v1/global.css" rel="stylesheet" data-role="global" />
    <link href="/static/css/bee-v2/css/bee.css" rel="stylesheet" data-role="global" />
    <link href="/static/css/mc_2014/break/css/break.css" rel="stylesheet" data-role="global" />

    <link href="/static/css/mc_2014/css/monitor-sdk.css" rel="stylesheet" data-role="global" />
    <link href="/static/css/business/tke/common.css" rel="stylesheet" data-role="global" />
    <link href="/static/css/business/tke/tke.2019_06_04.css" rel="stylesheet" data-role="global" />
    <link rel="apple-touch-icon" sizes="57x57" href="/static/image/apple-icon-57x57.png" />
    <link rel="apple-touch-icon" sizes="60x60" href="/static/image/apple-icon-60x60.png" />
    <link rel="apple-touch-icon" sizes="72x72" href="/static/image/apple-icon-72x72.png" />
    <link rel="apple-touch-icon" sizes="76x76" href="/static/image/apple-icon-76x76.png" />
    <link rel="apple-touch-icon" sizes="114x114" href="/static/image/apple-icon-114x114.png" />
    <link rel="apple-touch-icon" sizes="120x120" href="/static/image/apple-icon-120x120.png" />
    <link rel="apple-touch-icon" sizes="144x144" href="/static/image/apple-icon-144x144.png" />
    <link rel="apple-touch-icon" sizes="152x152" href="/static/image/apple-icon-152x152.png" />
    <link rel="apple-touch-icon" sizes="180x180" href="/static/image/apple-icon-180x180.png" />
    <link rel="icon" type="image/png" sizes="192x192" href="/static/image/android-icon-192x192.png" />
    <link rel="icon" type="image/png" sizes="32x32" href="/static/image/favicon-32x32.png" />

    <link rel="icon" type="image/png" sizes="96x96" href="/static/image/favicon-96x96.png" />
    <link rel="icon" type="image/png" sizes="16x16" href="/static/image/favicon-16x16.png" />
    <link rel="manifest" href="/static/image/manifest.json" />
    <meta name="msapplication-TileColor" content="#262626" />
    <meta name="msapplication-TileImage" content="/static/image/ms-icon-144x144.png" />
    <meta name="theme-color" content="#262626" />
  </head>

  <body>
    <script src="/<%= COMMON_VENDOR_JS_NAME %>"></script>
    <!-- <div id="pageWrapper"></div> -->
    <div id="appArea"></div>

    <script type="text/javascript">
      window.VERSION = 'zh';

      var jsVersion = {};
      var jsVersionEn = {};
      var jsVersionKo = {};
      // jsVersion['console.js'] = 'console.js';
      jsVersion['platform.js'] = 'platform.js';
      jsVersion['common.js'] = 'common.js';
      jsVersion['vendor.js'] = 'vendor.js';

      var cssVersion = {};
    </script>

    <script type="text/javascript">
      try {
        window.g_config_data = window.g_config_data || {};
        window.g_config_data.whitelist_keys = [];
        window.g_config_data.nccm_business = ['tke'];

        // 此处为配置js的路由
        window.g_config_data.jsRouter_zh = {
          tkestack: {
            // content: "http://localhost:8088/js/app.js",
            content: '/<%= TKE_JS_NAME %>',
            isUpdateLteIE9: '',
            component: 'tea2.0'
          },
          'tkestack-project': {
            content: '/<%= PROJECT_JS_NAME %>',
            isUpdateLteIE9: '',
            component: 'tea2.0'
          }
        };

        // 此处为配置css的相关配置文件
        // window.g_config_data.css_config = {
        //   tke: ['/static/css/business/tke/tke.css'],
        //   'tke-project': ['/static/css/business/tke/tke.css']
        // };

        g_config_data.redirect_config = {
          ticket: '/workorder',
          permission: '/cam'
        };
      } catch (e) {}
    </script>

    <script type="text/javascript">
      !(function (a, b) {
        function e(a) {
          return function (b) {
            return Object.prototype.toString.call(b) === '[object ' + a + ']';
          };
        }

        function k() {
          return j++;
        }

        function q(a) {
          return a.match(n)[0];
        }

        function r(a) {
          for (a = a.replace(o, '/'); a.match(p); ) a = a.replace(p, '/');
          return a;
        }

        function s(a) {
          var b = a.length - 1,
            c = a.charAt(b);
          return '#' === c
            ? a.substring(0, b)
            : '.js' === a.substring(b - 2) || a.indexOf('?') > 0 || '.css' === a.substring(b - 3) || '/' === c
            ? a
            : a + '.js';
        }

        function v(a) {
          var b = d.alias;
          return b && g(b[a]) ? b[a] : a;
        }

        function w(a) {
          var c,
            b = d.paths;
          return b && (c = a.match(t)) && g(b[c[1]]) && (a = b[c[1]] + c[2]), a;
        }

        function x(a) {
          var b = d.vars;
          return (
            b &&
              a.indexOf('{') > -1 &&
              (a = a.replace(u, function (a, c) {
                return g(b[c]) ? b[c] : a;
              })),
            a
          );
        }

        function y(a) {
          var e,
            f,
            g,
            b = d.map,
            c = a;
          if (b)
            for (
              e = 0, f = b.length;
              f > e && ((g = b[e]), (c = i(g) ? g(a) || a : a.replace(g[0], g[1])), c === a);
              e++
            );
          return c;
        }

        function B(a, b) {
          var c,
            f,
            e = a.charAt(0);
          return (
            z.test(a)
              ? (c = a)
              : '.' === e
              ? (c = r((b ? q(b) : d.cwd) + a))
              : '/' === e
              ? ((f = d.cwd.match(A)), (c = f ? f[0] + a.substring(1) : a))
              : (c = d.base + a),
            c
          );
        }

        function C(a, b) {
          if (!a) return '';
          (a = v(a)), (a = w(a)), (a = x(a)), (a = s(a));
          var c = B(a, b);
          return (c = y(c));
        }

        function J(a) {
          return a.hasAttribute ? a.src : a.getAttribute('src', 4);
        }

        function R(a, b, c) {
          var f,
            d = M.test(a),
            e = D.createElement(d ? 'link' : 'script');
          c && ((f = i(c) ? c(a) : c), f && (e.charset = f)),
            S(e, b, d),
            d ? ((e.rel = 'stylesheet'), (e.href = a)) : ((e.async = !0), (e.src = a)),
            (O = e),
            L ? K.insertBefore(e, L) : K.appendChild(e),
            (O = null);
        }

        function S(a, b, c) {
          var e = c && (Q || !('onload' in a));
          return e
            ? (setTimeout(function () {
                T(a, b);
              }, 1),
              void 0)
            : ((a.onload =
                a.onerror =
                a.onreadystatechange =
                  function () {
                    N.test(a.readyState) &&
                      ((a.onload = a.onerror = a.onreadystatechange = null),
                      c || d.debug || K.removeChild(a),
                      (a = null),
                      b());
                  }),
              void 0);
        }

        function T(a, b) {
          var d,
            c = a.sheet;
          if (Q) c && (d = !0);
          else if (c)
            try {
              c.cssRules && (d = !0);
            } catch (e) {
              'NS_ERROR_DOM_SECURITY_ERR' === e.name && (d = !0);
            }
          setTimeout(function () {
            d ? b() : T(a, b);
          }, 20);
        }

        function U() {
          var a, b, c;
          if (O) return O;
          if (P && 'interactive' === P.readyState) return P;
          for (a = K.getElementsByTagName('script'), b = a.length - 1; b >= 0; b--)
            if (((c = a[b]), 'interactive' === c.readyState)) return (P = c);
        }

        function X(a) {
          var b = [];
          return (
            a.replace(W, '').replace(V, function (a, c, d) {
              d && b.push(d);
            }),
            b
          );
        }

        function cb(a, b) {
          (this.uri = a),
            (this.dependencies = b || []),
            (this.exports = null),
            (this.status = 0),
            (this._waitings = {}),
            (this._remain = 0);
        }
        var c,
          d,
          f,
          g,
          h,
          i,
          j,
          l,
          m,
          n,
          o,
          p,
          t,
          u,
          z,
          A,
          D,
          E,
          F,
          G,
          H,
          I,
          K,
          L,
          M,
          N,
          O,
          P,
          Q,
          V,
          W,
          Y,
          Z,
          $,
          _,
          ab,
          bb,
          db;
        a.seajs ||
          ((c = a.seajs =
            {
              version: '2.1.1'
            }),
          (d = c.data = {}),
          (f = e('Object')),
          (g = e('String')),
          (h = Array.isArray || e('Array')),
          (i = e('Function')),
          (j = 0),
          (l = d.events = {}),
          (c.on = function (a, b) {
            var d = l[a] || (l[a] = []);
            return d.push(b), c;
          }),
          (c.off = function (a, b) {
            var e, f;
            if (!a && !b) return (l = d.events = {}), c;
            if ((e = l[a]))
              if (b) for (f = e.length - 1; f >= 0; f--) e[f] === b && e.splice(f, 1);
              else delete l[a];
            return c;
          }),
          (m = c.emit =
            function (a, b) {
              var e,
                d = l[a];
              if (d) for (d = d.slice(); (e = d.shift()); ) e(b);
              return c;
            }),
          (n = /[^?#]*\//),
          (o = /\/\.\//g),
          (p = /\/[^/]+\/\.\.\//),
          (t = /^([^/:]+)(\/.+)$/),
          (u = /{([^{]+)}/g),
          (z = /^\/\/.|:\//),
          (A = /^.*?\/\/.*?\//),
          (D = document),
          (E = location),
          (F = q(E.href)),
          (G = D.getElementsByTagName('script')),
          (H = D.getElementById('seajsnode') || G[G.length - 1]),
          (I = q(J(H) || F)),
          (K = D.getElementsByTagName('head')[0] || D.documentElement),
          (L = K.getElementsByTagName('base')[0]),
          (M = /\.css(?:\?|$)/i),
          (N = /^(?:loaded|complete|undefined)$/),
          (Q = 1 * navigator.userAgent.replace(/.*AppleWebKit\/(\d+)\..*/, '$1') < 536),
          (V =
            /"(?:\\"|[^"])*"|'(?:\\'|[^'])*'|\/\*[\S\s]*?\*\/|\/(?:\\\/|[^\/\r\n])+\/(?=[^\/])|\/\/.*|\.\s*require|(?:^|[^$])\brequire\s*\(\s*(["'])(.+?)\1\s*\)/g),
          (W = /\\\\/g),
          (Y = c.cache = {}),
          ($ = {}),
          (_ = {}),
          (ab = {}),
          (bb = cb.STATUS =
            {
              FETCHING: 1,
              SAVED: 2,
              LOADING: 3,
              LOADED: 4,
              EXECUTING: 5,
              EXECUTED: 6
            }),
          (cb.prototype.resolve = function () {
            var d,
              e,
              a = this,
              b = a.dependencies,
              c = [];
            for (d = 0, e = b.length; e > d; d++) c[d] = cb.resolve(b[d], a.uri);
            return c;
          }),
          (cb.prototype.load = function () {
            var b,
              c,
              d,
              e,
              f,
              g,
              a = this;
            if (!(a.status >= bb.LOADING)) {
              for (a.status = bb.LOADING, b = a.resolve(), m('load', b), c = a._remain = b.length, e = 0; c > e; e++)
                (d = cb.get(b[e])),
                  d.status < bb.LOADED ? (d._waitings[a.uri] = (d._waitings[a.uri] || 0) + 1) : a._remain--;
              if (0 === a._remain) return a.onload(), void 0;
              for (f = {}, e = 0; c > e; e++)
                (d = Y[b[e]]), d.status < bb.FETCHING ? d.fetch(f) : d.status === bb.SAVED && d.load();
              for (g in f) f.hasOwnProperty(g) && f[g]();
            }
          }),
          (cb.prototype.onload = function () {
            var b,
              c,
              d,
              a = this;
            (a.status = bb.LOADED), a.callback && a.callback(), (b = a._waitings);
            for (c in b) b.hasOwnProperty(c) && ((d = Y[c]), (d._remain -= b[c]), 0 === d._remain && d.onload());
            delete a._waitings, delete a._remain;
          }),
          (cb.prototype.fetch = function (a) {
            function g() {
              R(e.requestUri, e.onRequest, e.charset);
            }

            function h() {
              delete $[f], (_[f] = !0), Z && (cb.save(c, Z), (Z = null));
              var a,
                b = ab[f];
              for (delete ab[f]; (a = b.shift()); ) a.load();
            }
            var e,
              f,
              b = this,
              c = b.uri;
            return (
              (b.status = bb.FETCHING),
              (e = {
                uri: c
              }),
              m('fetch', e),
              (f = e.requestUri || c),
              !f || _[f]
                ? (b.load(), void 0)
                : $[f]
                ? (ab[f].push(b), void 0)
                : (($[f] = !0),
                  (ab[f] = [b]),
                  m(
                    'request',
                    (e = {
                      uri: c,
                      requestUri: f,
                      onRequest: h,
                      charset: d.charset
                    })
                  ),
                  e.requested || (a ? (a[e.requestUri] = g) : g()),
                  void 0)
            );
          }),
          (cb.prototype.exec = function () {
            function d(a) {
              return cb.get(d.resolve(a)).exec();
            }
            var c,
              e,
              f,
              a = this;
            return a.status >= bb.EXECUTING
              ? a.exports
              : ((a.status = bb.EXECUTING),
                (c = a.uri),
                (d.resolve = function (a) {
                  return cb.resolve(a, c);
                }),
                (d.async = function (a, b) {
                  return cb.use(a, b, c + '_async_' + k()), d;
                }),
                (e = a.factory),
                (f = i(e) ? e(d, (a.exports = {}), a) : e),
                f === b && (f = a.exports),
                null !== f || M.test(c) || m('error', a),
                delete a.factory,
                (a.exports = f),
                (a.status = bb.EXECUTED),
                m('exec', a),
                f);
          }),
          (cb.resolve = function (a, b) {
            var c = {
              id: a,
              refUri: b
            };
            return m('resolve', c), c.uri || C(c.id, b);
          }),
          (c.ownCode = arguments.callee.toString()),
          (c.modules = {}),
          (c.hasDefined = {}),
          (cb.define = function (a, d, e) {
            var g,
              j,
              k,
              f = arguments.length;
            1 === f ? ((e = a), (a = b)) : 2 === f && ((e = d), h(a) ? ((d = a), (a = b)) : (d = b)),
              !h(d) && i(e) && ((g = e.toString()), (d = X(g))),
              (j = {
                id: a,
                uri: cb.resolve(a),
                deps: d,
                factory: e
              }),
              !j.uri && D.attachEvent && ((k = U()), k && (j.uri = k.src)),
              m('define', j),
              j.uri ? cb.save(j.uri, j) : (Z = j),
              g || (g = e.toString()),
              (c.hasDefined[a] = c.modules[a] = g);
          }),
          (cb.save = function (a, b) {
            var c = cb.get(a);
            c.status < bb.SAVED &&
              ((c.id = b.id || a), (c.dependencies = b.deps || []), (c.factory = b.factory), (c.status = bb.SAVED));
          }),
          (cb.get = function (a, b) {
            return Y[a] || (Y[a] = new cb(a, b));
          }),
          (cb.use = function (b, c, d) {
            var e = cb.get(d, h(b) ? b : [b]);
            (e.callback = function () {
              var f,
                g,
                b = [],
                d = e.resolve();
              for (f = 0, g = d.length; g > f; f++) b[f] = Y[d[f]].exec();
              c && c.apply(a, b), delete e.callback;
            }),
              e.load();
          }),
          (cb.preload = function (a) {
            var b = d.preload,
              c = b.length;
            c
              ? cb.use(
                  b,
                  function () {
                    b.splice(0, c), cb.preload(a);
                  },
                  d.cwd + '_preload_' + k()
                )
              : a();
          }),
          (c.use = function (a, b) {
            return (
              cb.preload(function () {
                cb.use(a, b, d.cwd + '_use_' + k());
              }),
              c
            );
          }),
          (cb.define.cmd = {}),
          (a.define = cb.define),
          (c.Module = cb),
          (d.fetchedList = _),
          (d.cid = k),
          (c.resolve = C),
          (c.require = function (a) {
            return (Y[cb.resolve(a)] || {}).exports;
          }),
          (db = /^(.+?\/)(\?\?)?(seajs\/)+/),
          (d.base = (I.match(db) || ['', I])[1]),
          (d.dir = I),
          (d.cwd = F),
          (d.charset = 'utf-8'),
          (d.preload = (function () {
            var a = [],
              b = E.search.replace(/(seajs-\w+)(&|$)/g, '$1=1$2');
            return (
              (b += ' ' + D.cookie),
              b.replace(/(seajs-\w+)=1/g, function (b, c) {
                a.push(c);
              }),
              a
            );
          })()),
          (c.config = function (a) {
            var b, e, g, i;
            for (b in a)
              if (((e = a[b]), (g = d[b]), g && f(g))) for (i in e) g[i] = e[i];
              else
                h(g) ? (e = g.concat(e)) : 'base' === b && ('/' === e.slice(-1) || (e += '/'), (e = B(e))), (d[b] = e);
            return m('config', a), c;
          }));
      })(this);
    </script>

    <script type="text/javascript">
      window.VERSION = 'zh';

      (function (win, doc) {
        window.QCCONSOLE_HOST = 'console.' + doc.domain;

        var basePath = '/static/js/';
        var max_age = 31536000;

        //language begin
        (function () {
          var key, result;
          var map = {
            en: 'en/',
            ko: 'ko/'
          };
          var cleanUrl = false;

          if ((result = /lang(?:uage)?=(\w+)/.exec(window.location.href))) {
            // key = result[1];
            key = 'zh';
            cleanUrl = true; // 如果从 url 上带有 language 参数, 则应该清除这个参数

            var cn_en_tag;

            if (key === 'en') {
              cn_en_tag = 1;
            } else if (key === 'zh') {
              cn_en_tag = 0;
            }

            // 当query有language，且==en时，设tag为1；==zh时设0，其他不管，过期时间半年 from ericji
            if (typeof cn_en_tag !== 'undefined') {
              document.cookie =
                'cn_en_tag=' +
                cn_en_tag +
                '; expires=' +
                new Date(Date.now() + 6 * 30 * 24 * 60 * 60 * 1000).toUTCString() +
                ' ;domain=' +
                document.domain +
                '; path=/';
            }
          } else if ((result = /(?:^|\s)language=(\w+)(?:;|$)/.exec(document.cookie))) {
            key = 'zh';
          } else {
            key = 'zh';
          }

          if (map[key]) {
            basePath = '';
            VERSION = key;
            max_age = 86400;
            var bodyLangCls = {
              en: 'international',
              ko: 'qc-lang-ko'
            };
            document.body.className = bodyLangCls[key];
          }

          document.cookie =
            'language=' +
            window.VERSION +
            '; expires=' +
            new Date(2153717523864).toUTCString() +
            ' ;domain=' +
            document.domain +
            '; path=/';

          if (cleanUrl) {
            location.search = location.search.replace(/&?lang(uage)?=\w+/, '');
          }
        })();

        //language end

        var loader = {
          load: function (url, cb) {
            var urlArr = [];
            if (typeof url == 'string') {
              urlArr.push(url);
            } else {
              urlArr = url;
            }
            var len = urlArr.length,
              callback = function () {
                if (!--len) {
                  cb && cb();
                }
              };
            for (var i = 0, url; (url = urlArr[i]); i++) {
              this._load(url, callback);
            }
          },
          _load: function (url, cb) {
            var oldIe = /msie [\w.]+/.test(navigator.userAgent.toLowerCase());
            if (oldIe && VERSION === 'zh') {
              this._iframeLoad(url, cb);
            } else {
              this._scriptLoad(url, cb);
            }
          },
          _scriptLoad: function (url, cb) {
            var el = doc.createElement('script');
            var scriptVersion = '20180329';
            url = /^(https?:)?\/\//i.test(url) ? url : basePath + url;
            el.setAttribute('type', 'text/javascript');
            el.setAttribute('src', url);
            el.setAttribute('async', true);
            el.onerror = function () {
              cb();
              el.onerror = null;
            };
            el.onload = el.onreadystatechange = function () {
              if (!this.readyState || this.readyState === 'loaded' || this.readyState === 'complete') {
                if (storeMode && seajs.modules) {
                  var modules = seajs.modules,
                    jsStr = '';
                  for (var key in modules) {
                    jsStr += 'define("' + key + '",' + modules[key] + ');';
                  }
                  try {
                    clearLocal(url);
                    localStorage[url] = jsStr;
                  } catch (e) {}

                  seajs.modules = {};
                }
                cb();
                el.onload = el.onreadystatechange = null;
              }
            };
            doc.getElementsByTagName('head')[0].appendChild(el);
          },
          _iframeLoad: function (url, cb) {
            var iframe = doc.createElement('iframe');
            iframe.style.display = 'none';
            iframe.src =
              'javascript:void(function(){document.open();' +
              'document.domain = "' +
              doc.domain +
              '";document.close();}());';
            url = /^(https?:)?\/\//i.test(url) ? url : basePath + url + '?max_age=' + max_age;
            iframe.callback = function (jsStr) {
              eval(jsStr);
              if (storeMode) {
                try {
                  clearLocal(url);
                  localStorage[url] = jsStr;
                } catch (e) {}
              }
              cb();
              setTimeout(function () {
                doc.body.removeChild(iframe);
                iframe = null;
              }, 1000);
            };
            var iframeLoad = function () {
              var iframeDoc = iframe.contentDocument || iframe.contentWindow.document;
              var iframeHtm = [
                '<html><head><meta charset="utf-8"></head><body onload="callback()">',
                '<script type="text/javascript">',
                'var jsStr = "", cb = false;',
                'var define = function (id, factory) {',
                'if (typeof(factory) == "function") {',
                'var factoryStr = factory.toString();',
                'jsStr += "define(\'" + id + "\'," + factoryStr + ");"',
                '}',
                '};<\/script>',
                '<script type="text/javascript" src="' + url + '"><\/script>',
                '<script type="text/javascript">',
                'function callback() {',
                'if (jsStr && !cb) {',
                'frameElement.callback(jsStr);',
                'cb = true;',
                '}',
                '};',
                'callback();',
                '<\/script>',
                '</body></html>'
              ].join('');
              iframeDoc.open();
              iframeDoc.domain = doc.domain;
              iframeDoc.write(iframeHtm);
              iframeDoc.close();
            };

            if (iframe.attachEvent) {
              var _ifmLoad = function () {
                iframe.detachEvent('onload', _ifmLoad);
                iframeLoad();
              };
              iframe.attachEvent('onload', _ifmLoad);
            } else {
              iframe.onload = function () {
                iframe.onload = null;
                iframeLoad();
              };
            }

            doc.body.appendChild(iframe);
          }
        };

        function clearLocal(url) {
          for (var key in win.localStorage) {
            var urlName = url.substring(0, url.indexOf('.'));
            var stoName = key.substring(0, key.indexOf('.'));
            if (urlName == stoName) {
              localStorage.removeItem(key);
              break;
            }
          }
        }

        function configSeajs() {
          seajs.config({
            base: basePath,
            alias: {
              //nmc
              $: 'jquery-1.10.2',
              util: 'nmc/lib/util',

              twofactor: 'nmc/lib/twofactor',
              event: 'nmc/lib/event',
              nmcConfig: 'nmc/config/config',
              pageManager: 'nmc/main/pagemanager',
              router: 'nmc/main/router',
              entry: 'nmc/main/entry',
              tips: 'nmc/widget/tips',

              //external
              manager: 'models/manager',
              constants: 'config/constants',
              appUtil: 'lib/appUtil',
              startup: 'main/startup'
            }
          });
        }

        var coreJs = ['vendor.js', 'platform.js', 'common.js'];
        var qcbaseSource = {};

        function isInCoreJs(name) {
          var isInArray = false;
          if (Array.prototype.indexOf) {
            isInArray = coreJs.indexOf(name) >= 0;
          } else {
            for (var i = 0; i < coreJs.length; i++) {
              if (coreJs[i] == name) {
                isInArray = true;
                break;
              }
            }
          }
          return isInArray;
        }

        function loadModule() {
          configSeajs();

          var needLoadArr = [],
            needEvalArr = [];

          for (var name in jsVersion) {
            if (isInCoreJs(name)) {
              var loadName = getTargetName(name);
              if (storeMode) {
                if (localStorage[loadName]) {
                  needEvalArr.push(loadName);
                } else {
                  needLoadArr.push(loadName);
                }
              } else {
                needLoadArr.push(loadName);
              }
            }
          }

          function gettingStarted() {
            var errorEvalArr = [];
            if (storeMode) {
              for (var i = 0, item; (item = needEvalArr[i]); i++) {
                try {
                  eval(localStorage[item]);
                } catch (e) {
                  errorEvalArr.push(item);
                  console.warn('错误的缓存：', item, e);
                }
              }
            }
            if (errorEvalArr.length) {
              loader.load(errorEvalArr, start);
            } else {
              start();
            }
          }

          if (needLoadArr.length) {
            loader.load(needLoadArr, gettingStarted);
          } else {
            gettingStarted();
          }
        }

        function start() {
          seajs.use('startup', function (app) {
            app.startup();
          });
        }

        function getTargetName(name) {
          var targetName;
          var jsVersionMap = {
            en: 'jsVersionEn',
            ko: 'jsVersionKo'
          };

          if (VERSION !== 'zh') {
            if (jsVersionMap[VERSION] && window[jsVersionMap[VERSION]] && window[jsVersionMap[VERSION]][name]) {
              targetName = window[jsVersionMap[VERSION]][name];
            } else {
              targetName = name;
            }
          } else if (debug == 2) {
            targetName = name;
          } else {
            targetName = jsVersion[name];
          }
          return qcbaseSource[name] || targetName;
        }

        function nmcLoad(name, cb) {
          var loadName = getTargetName(name);
          if (nmcLoad.loaded[loadName]) {
            cb && cb();
            return;
          }
          if (storeMode && localStorage[loadName]) {
            eval(localStorage[loadName]);
            nmcLoad.loaded[loadName] = true;
            cb && cb();
          } else {
            seajs.modules = {};
            loader.load(loadName, function () {
              nmcLoad.loaded[loadName] = true;
              cb && cb();
            });
          }
        }

        nmcLoad.loaded = {};

        var locationHref = win.location.href,
          debug = 0,
          storeMode = 0;

        if (/\/debug_online/.test(locationHref)) {
          debug = 1;
        } else if (/\/debug_https/.test(locationHref)) {
          debug = 2;
        } else if (/\/debug_http/.test(locationHref)) {
          debug = 0;
        } else if (/\/debug/.test(locationHref)) {
          debug = 2;
        }

        win.startLoadJs = new Date();
        win.nmcLoad = nmcLoad;

        loadModule();
      })(window, document);
    </script>

    <script>
      let path = location.pathname;
      if (!path || path === '/') {
        location.pathname = 'tkestack';
      }
    </script>
  </body>
</html>
